package com.itheima.tilas.mapper;

import com.itheima.tilas.entity.Log;
import com.itheima.tilas.po.InsertLogParam;
import com.itheima.tilas.po.SelectLogPageParam;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 日志表映射
 *
 * @author 132
 */
@Mapper
public interface LogMapper {
    /**
     * 分页查询日志信息
     *
     * @param param 保存分页信息的变量
     * @return 返回日志信息列表
     */
    @Select("select l.id,operate_emp_id, operate_time, class_name, method_name, method_params, return_value, cost_time, " +
            "e.name operateEmpName from log_info l left join emp e on l.operate_emp_id=e.id")
    List<Log> selectLogPage(@Param("p") SelectLogPageParam param);

    /**
     * 插入一条日志信息
     * @param param 存储日志信息
     * @return 返回影响数据的条数
     */
    @Insert("insert into log_info values (null,#{p.operateEmpId},#{p.operateTime},#{p.className},#{p.methodName}" +
            ",#{p.methodParams},#{p.returnValue},#{p.costTime},now(),now())")
    int insertLogOne(@Param("p") InsertLogParam param);
}
